package telas;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

import javax.swing.JComboBox;
import javax.xml.crypto.Data;

import classes.App;
import classes.Desenvolvedor;
import DAOs.DAOApp;
import DAOs.DAODesenvolvedor;

public class CadastraApp extends JFrame {

	private JPanel contentPane;
	private JTextField txtNome;
	private JTextField txtDesenvolvedor;
	private JButton btnProcurar;
	private JComboBox cbbDesenvolvedor;
	private JTextField txtCategoria;
	private JTextField txtPreco;
	private JTextField txtEnderecoDeDownload;
	private JTextField txtDescricao;
	private JLabel lblIdApp;
	
	private Desenvolvedor desenvolvedor = new Desenvolvedor();
	private App app = new App();
	
	private int status;
	
	private DAODesenvolvedor dadosDesenvolvedor = new DAODesenvolvedor();
	private DAOApp dadosApp = new DAOApp();
	
	

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					CadastraApp frame = new CadastraApp();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	
	public void AbreTela(App app, int status){
		this.status = status;
		this.app = app;
		if(status == 2){
			txtCategoria.setText(app.getCategoria());
			lblIdApp.setText("Id App "+ app.getIdApp());
			txtDescricao.setText(app.getDescricao());
			ArrayList<Desenvolvedor> desenvolvedores = new ArrayList<Desenvolvedor>();
			desenvolvedores = dadosDesenvolvedor.searchDesenvolvedor(String.valueOf(app.getIdDesenvolvedor()));
			for (int i=0; i<desenvolvedores.size();i++){
				cbbDesenvolvedor.addItem(desenvolvedores.get(i));
				Desenvolvedor desenvolvedor = new Desenvolvedor();
				desenvolvedor = desenvolvedores.get(i);
				txtDesenvolvedor.setText(desenvolvedor.getNome());
				}
			txtEnderecoDeDownload.setText(app.getEndereco_download());
			txtNome.setText(app.getNome());
			txtPreco.setText(String.valueOf(app.getPreco()));
		}else{
			lblIdApp.setText(null);
		}
		
	}
	public CadastraApp() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 534, 559);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblNome = new JLabel("Nome");
		lblNome.setBounds(24, 38, 46, 14);
		contentPane.add(lblNome);
		
		txtNome = new JTextField();
		txtNome.setBounds(24, 63, 161, 20);
		contentPane.add(txtNome);
		txtNome.setColumns(10);
		
		JLabel lblDesenvolvedor = new JLabel("Nome Desenvolvedor");
		lblDesenvolvedor.setBounds(24, 106, 110, 14);
		contentPane.add(lblDesenvolvedor);
		
		btnProcurar = new JButton("Procurar");
		btnProcurar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ArrayList<Desenvolvedor> desenvolvedores = new ArrayList<Desenvolvedor>();
				desenvolvedores = dadosDesenvolvedor.searchDesenvolvedor(txtDesenvolvedor.getText());
				cbbDesenvolvedor.removeAllItems();
				
				for (int i=0; i<desenvolvedores.size();i++){
				cbbDesenvolvedor.addItem(desenvolvedores.get(i));
			
				}
			}
		});
		btnProcurar.setBounds(207, 136, 89, 23);
		contentPane.add(btnProcurar);
		
		txtDesenvolvedor = new JTextField();
		txtDesenvolvedor.setBounds(23, 137, 162, 20);
		contentPane.add(txtDesenvolvedor);
		txtDesenvolvedor.setColumns(10);
		
		cbbDesenvolvedor = new JComboBox();
		cbbDesenvolvedor.setBounds(326, 137, 182, 20);
		contentPane.add(cbbDesenvolvedor);
		
		JLabel lblCategoria = new JLabel("Categoria");
		lblCategoria.setBounds(24, 179, 97, 14);
		contentPane.add(lblCategoria);
		
		txtCategoria = new JTextField();
		txtCategoria.setBounds(24, 204, 161, 20);
		contentPane.add(txtCategoria);
		txtCategoria.setColumns(10);
		
		JLabel lblPreco = new JLabel("Pre\u00E7o");
		lblPreco.setBounds(24, 235, 46, 14);
		contentPane.add(lblPreco);
		
		txtPreco = new JTextField();
		txtPreco.setBounds(24, 260, 70, 20);
		contentPane.add(txtPreco);
		txtPreco.setColumns(10);
		
		JLabel lblEnderecoDeDownload = new JLabel("Endere\u00E7o de Download");
		lblEnderecoDeDownload.setBounds(24, 302, 196, 14);
		contentPane.add(lblEnderecoDeDownload);
		
		txtEnderecoDeDownload = new JTextField();
		txtEnderecoDeDownload.setBounds(24, 327, 161, 20);
		contentPane.add(txtEnderecoDeDownload);
		txtEnderecoDeDownload.setColumns(10);
		
		JLabel lblDescricao = new JLabel("Descri\u00E7\u00E3o");
		lblDescricao.setBounds(24, 366, 70, 14);
		contentPane.add(lblDescricao);
		
		txtDescricao = new JTextField();
		txtDescricao.setBounds(20, 392, 379, 50);
		contentPane.add(txtDescricao);
		txtDescricao.setColumns(10);
		
		JButton btnCadastrar = new JButton("Cadastrar");
		btnCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				app.setCategoria(txtCategoria.getText());
				app.setDescricao(txtDescricao.getText());
				app.setEndereco_download(txtEnderecoDeDownload.getText());
				Desenvolvedor desenvolvedor = new Desenvolvedor();
				desenvolvedor = (Desenvolvedor) cbbDesenvolvedor.getSelectedItem();
				app.setIdDesenvolvedor(desenvolvedor.getIdDesenvolvedor());
				app.setNome(txtNome.getText());
				app.setPreco(Double.valueOf(txtPreco.getText()));
				if(status == 2)
					dadosApp.updateApp(app);
				else if(status == 1)
					dadosApp.createApp(app);
				
				
				txtNome.setText(null);
				txtDesenvolvedor.setText(null);
				txtCategoria.setText(null);
				txtEnderecoDeDownload.setText(null);
				txtDescricao.setText(null);
				txtPreco.setText(null);
				cbbDesenvolvedor.removeAllItems();
				
				dispose();
				
			}
		});
		btnCadastrar.setBounds(32, 486, 89, 23);
		contentPane.add(btnCadastrar);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				txtNome.setText(null);
				txtDesenvolvedor.setText(null);
				txtCategoria.setText(null);
				txtEnderecoDeDownload.setText(null);
				txtDescricao.setText(null);
				txtPreco.setText(null);
				cbbDesenvolvedor.removeAllItems();
				
				dispose();
			}
		});
		btnCancelar.setBounds(365, 486, 89, 23);
		contentPane.add(btnCancelar);
		
		lblIdApp = new JLabel("");
		lblIdApp.setBounds(379, 26, 97, 14);
		contentPane.add(lblIdApp);
	}
}
